import {createStore} from 'vuex'
import router from '../router/router'
let store = createStore({
    state(){
        return {
            title:'dashboard',
            list:[
            ],
            mbx:true
        }
    },
    getters:{
    },
    mutations:{
        // 改变卡片标题函数
        changeTitle(i,v){
            i.title = v;
        },
        // 排他思想 标签type全部为info
        changeBack(s){
            s.list.forEach(item=>item.type = 'info')
        },
        // 添加标签和检测是否存在该标签
        addList(s,v){
            if(s.list.includes(v)){
                let index = s.list.findIndex(item=>item.name==v.name);
                this.commit('changeBack');
                s.list[index].type = '';
            }else{
                this.commit('changeBack');
                v.type = '';
                s.list.push(v)
                console.log(v);
            }
        },
        // 当点击标签或者面包屑时
        changeList(s,v){
            router.push({name:v.name})
            let index = s.list.findIndex(item=>item.name == v.name);
            // 如果该路径path存在
            if(index !=-1){
                this.commit('changeBack');
                s.list[index].type = '';
                s.title = s.list[index].meta.title;
            }
            else{
                this.commit('changeBack');
                v.type = '';
                v.name = v.meta.title
                s.list.push(v)
            }

        },
        removeList(s,v){
            // 获取被删除数据的index
            let index = s.list.findIndex(item=>item.path == v.path);
            // 当列表数据长度大于1和删除的数据是选中数据
            if(s.list.length > 1 && s.list[index].type == ''){
                // 如果是第一个数据就选中第二个
                if(index ==0){
                    s.list[index+1].type = '' ;
                    s.title = s.list[index+1].name;
                    router.push(s.list[index+1].path);
                    
                }else{
                    // 如果是第一个之外的数据被点击 选中上一个
                    s.list[index-1].type = '';
                    s.title = s.list[index-1].name; 
                    router.push(s.list[index-1].path);
                }
            }
            // 删除该条数据
            s.list.splice(index,1);
        }
    },
    actions:{}
})

export default store